home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 011 / timepark.arc / TIMEPARK.ASM next >
Assembly Source File  |  1986-03-13  |  2KB  |  141 lines

  1. code    Segment Para
  2.     Assume cs:code, ds:code
  3.     org    100h
  4. park    proc far
  5.     jmp    init
  6. x1coff     dw    0
  7. x1cseg     dw    0
  8. x13off     dw    0
  9. x13seg     dw    0
  10. parked    dw    0
  11. count    dw    0
  12. value    dw    0
  13. flag    dw    0
  14. x1cint:    push    ax
  15.     push    bx
  16.     push    cx
  17.     push    dx
  18.     push    ds
  19.     mov    ax,cs
  20.     mov    ds,ax
  21.     xor    ax,ax
  22.     cmp    parked,ax
  23.     jne    x1cout
  24.     dec    word ptr count
  25.     cmp    count,ax
  26.     jne    x1cout
  27.     cli
  28.     mov    ax,1
  29.     mov    parked,ax
  30.     mov    flag,ax
  31.     mov    ax,value
  32.     mov    count,ax
  33.     sti
  34.     mov    ah,08
  35.     mov    dx,80h
  36.     int    13h
  37.     mov    dx,80h
  38.     inc    ch
  39.     mov    ax,0401h
  40.     int    13h
  41.     mov    ah,08
  42.     mov    dx,81h
  43.     int    13h
  44.     mov    dx,81h
  45.     inc    ch
  46.     mov    ax,0401h
  47.     int    13h
  48.     xor    ax,ax
  49.     mov    flag,ax
  50. x1cout:    pop    ds
  51.     pop    dx
  52.     pop    cx
  53.     pop    bx
  54.     pop    ax
  55.     jmp    dword ptr cs:[x1coff]
  56. x13int:    push    ax
  57.     push    ds
  58.     mov    ax,cs
  59.     mov    ds,ax
  60.     cmp    flag,1
  61.     je    x13in1
  62.     mov    ax,value
  63.     mov    count,ax
  64.     xor    ax,ax
  65.     mov    parked,ax
  66. x13in1:    pop    ds
  67.     pop    ax
  68.     jmp    dword ptr cs:[x13off]
  69.     dw    0
  70. table    dw    0
  71. init:    xor    ax,ax
  72.     mov    parked,ax
  73.     mov    bx,80h
  74.     mov    al,[bx]
  75.     cmp    al,0
  76.     jne    init1
  77.     int    21h
  78. init1:    inc    bx
  79.     mov    al,[bx]
  80.     cmp    al,32
  81.     je    init1
  82.     cmp    al,13
  83.     jne    init3
  84. init2:    xor    ax,ax
  85.     int    21h
  86. init3:    cmp    al,49
  87.     jb    init2
  88.     cmp    al,57
  89.     ja    init2
  90.     lea    dx,mess
  91.     mov    cx,ax
  92.     mov    ah,09
  93.     int    21h
  94.     mov    ax,cx
  95.     xor    ah,ah
  96.     mov    bx,0fh
  97.     and    ax,bx
  98.     mov    dx,1091
  99.     mul    dx
  100.     mov    value,ax
  101.     mov    count,ax
  102.     cli
  103.     push    es
  104.     xor    ax,ax
  105.     mov    es,ax
  106.     mov    bx,76
  107.     mov    ax,es:[bx]
  108.     mov    x13off,ax
  109.     mov    ax,offset x13int
  110.     mov    es:[bx],ax
  111.     inc    bx
  112.     inc    bx
  113.     mov    ax,es:[bx]
  114.     mov    x13seg,ax
  115.     mov    ax,cs
  116.     mov    es:[bx],ax
  117.     xor    ax,ax
  118.     mov    flag,ax
  119.     mov    es,ax
  120.     mov    bx,112
  121.     mov    ax,es:[bx]
  122.     mov    x1coff,ax
  123.     mov    ax,offset x1cint
  124.     mov    es:[bx],ax
  125.     inc    bx
  126.     inc    bx
  127.     mov    ax,es:[bx]
  128.     mov    x1cseg,ax
  129.     mov    ax,cs
  130.     mov    es:[bx],ax
  131.     pop    es
  132.     sti
  133.     mov    dx,offset table
  134.     int    27h
  135. mess    db    'Alpha Computer Service timed parker is activated'
  136.     db    13,10,'for hard disks C and, if present, D'
  137.     db    13,10,'$'
  138. park    endp
  139. code    ends
  140.     end park
  141.